//////////////////////////////////////////////////////////////////////////
// $Id: MProperty.cpp,v 1.1 2009/04/03 12:46:10 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#include "Local.h"

//////////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN

//////////////////////////////////////////////////////////////////////////

	MProperty::MProperty( const MVar& var )
	{
		GUARD(MProperty::MProperty);

		mVar = var;

		UNGUARD;
	}

	MProperty::~MProperty()
	{
		GUARD(MProperty::~MProperty);

		UNGUARD;
	}

	/*
	====================
	type
	====================
	*/
	INLINE U32 MProperty::type() const
	{
		GUARD(MProperty::type);

		THREAD_AUTO_LOCK;
		return mVar.type();

		UNGUARD;
	}

	/*
	====================
	value
	====================
	*/
	INLINE const MVar& MProperty::value() const
	{
		GUARD(MProperty::value);

		THREAD_AUTO_LOCK;
		return mVar;

		UNGUARD;
	}
	
	INLINE VOID MProperty::value(const MVar& var)
	{
		GUARD(MProperty::value);

		THREAD_AUTO_LOCK;
		mVar.convert((MVar::VT)mVar.type(), &var);

		UNGUARD;
	}

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

